package org.computate.guice;

import com.google.inject.AbstractModule;
import com.google.inject.Singleton;
import org.computate.tool.ModelTool;
import org.computate.tool.ModelToolImpl;
import org.computate.model.dao.Daos;
import org.computate.model.dao.DaosImpl;

import org.computate.model.dao.WebAlbumDao;
import org.computate.model.dao.WebAlbumDaoImpl;
import org.computate.model.dao.UploadDao;
import org.computate.model.dao.UploadDaoImpl;
import org.computate.model.dao.PageDao;
import org.computate.model.dao.PageDaoImpl;
import org.computate.model.dao.TransitDayDao;
import org.computate.model.dao.TransitDayDaoImpl;
import org.computate.model.dao.GraveDao;
import org.computate.model.dao.GraveDaoImpl;
import org.computate.model.dao.PhotoDao;
import org.computate.model.dao.PhotoDaoImpl;
import org.computate.model.dao.TransitHourDao;
import org.computate.model.dao.TransitHourDaoImpl;
import org.computate.model.dao.TransitNeedDao;
import org.computate.model.dao.TransitNeedDaoImpl;
import org.computate.model.dao.ReviewDao;
import org.computate.model.dao.ReviewDaoImpl;
import org.computate.model.dao.BuriedPersonDao;
import org.computate.model.dao.BuriedPersonDaoImpl;
import org.computate.model.dao.ModelDao;
import org.computate.model.dao.ModelDaoImpl;

public class GuiceModelModule extends AbstractModule {

	@Override
	protected void configure() {
		
		bind(ModelTool.class).to(ModelToolImpl.class);
		bind(Daos.class).to(DaosImpl.class);
		
		bind(WebAlbumDao.class).to(WebAlbumDaoImpl.class).in(Singleton.class);
		bind(UploadDao.class).to(UploadDaoImpl.class).in(Singleton.class);
		bind(PageDao.class).to(PageDaoImpl.class).in(Singleton.class);
		bind(TransitDayDao.class).to(TransitDayDaoImpl.class).in(Singleton.class);
		bind(GraveDao.class).to(GraveDaoImpl.class).in(Singleton.class);
		bind(PhotoDao.class).to(PhotoDaoImpl.class).in(Singleton.class);
		bind(TransitHourDao.class).to(TransitHourDaoImpl.class).in(Singleton.class);
		bind(TransitNeedDao.class).to(TransitNeedDaoImpl.class).in(Singleton.class);
		bind(ReviewDao.class).to(ReviewDaoImpl.class).in(Singleton.class);
		bind(BuriedPersonDao.class).to(BuriedPersonDaoImpl.class).in(Singleton.class);
		bind(ModelDao.class).to(ModelDaoImpl.class).in(Singleton.class);
	}

}
